package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import modelo.Tipo;
import modelo.TipoDTO;

import controlador.Supermercado;

public class vModificarTipoProducto extends JFrame {
	
	private static final long serialVersionUID = 1L;

	private Supermercado supermercado;
	private Tipo tipo;
	private JPanel panel;
	
	private JLabel lblID;
	private JTextField txtID;
	private JLabel lblDescripcion;
	private JTextField txtDescripcion;
	private JButton btnBuscar;
	private JButton btnAceptar;
	private JButton btnCancelar;
	
	public vModificarTipoProducto(Supermercado superm) {
		super();
		this.supermercado = superm;
		this.cargarVista();
	}

	private void cargarVista() {
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		setSize(600, 400);
		panel = new JPanel();
		panel.setLayout(null);//No usa ningun gestor de Layout
		panel.setBounds(getBounds());//Toma los limites del JFrame
		setContentPane(panel);
		
		lblID = new JLabel("Codigo Tipo");
		lblID.setBounds(20, 20, 100, 25);
		txtID= new JTextField();
		txtID.setBounds(105, 20, 100, 25);
		txtID.setEnabled(false);
		lblDescripcion= new JLabel("Descripcion ");
		lblDescripcion.setBounds(20, 50, 100, 25);
		txtDescripcion= new JTextField();
		txtDescripcion.setBounds(105, 50, 200, 25);
		btnBuscar=new JButton("Buscar");
		btnBuscar.setBounds(305, 50, 90, 25);
		btnAceptar=new JButton("Aceptar");
		btnAceptar.setBounds(150, 350, 90, 25);
		btnCancelar=new JButton("Cancelar");
		btnCancelar.setBounds(250, 350, 90, 25);
		
		panel.add(lblID);
		panel.add(txtID);
		panel.add(lblDescripcion);
		panel.add(txtDescripcion);
		panel.add(btnBuscar);
		panel.add(btnAceptar);
		panel.add(btnCancelar);
		
		btnBuscar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				
				if(!txtDescripcion.getText().isEmpty()){
					tipo = supermercado.buscarTipo(txtDescripcion.getText());
					if(tipo!=null){
						TipoDTO tipoDTO = tipo.crearTipoDTO();
						txtID.setText(String.valueOf(tipoDTO.getIdTipo()));
						txtDescripcion.setText(tipoDTO.getDescripcion());
					}
					else{
						JOptionPane.showMessageDialog(null,
								"El "+txtDescripcion.getText()+" no existe en el sistema",
								"Error", JOptionPane.ERROR_MESSAGE);
					}
				}
			}
		});
		
		btnAceptar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				if(!txtDescripcion.getText().isEmpty()){
					supermercado.buscarTipoXcod(Integer.parseInt(txtID.getText())).setDescripcion(txtDescripcion.getText());
					JOptionPane.showMessageDialog(null,
							"El Tipo de producto modificado",
							"Error", JOptionPane.ERROR_MESSAGE);
				}
				else{
					JOptionPane.showMessageDialog(null,
							"El "+txtDescripcion.getText()+" no existe en el sistema",
							"Error", JOptionPane.ERROR_MESSAGE);
				}				
			}
		});
		
		btnCancelar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				setVisible(false);
			}
		});
	}

}
